<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>基础率建议算法说明</title>
    <style>
        body {
            font-family: 'Microsoft YaHei', Arial, sans-serif;
            line-height: 1.6;
            color: #333;
            max-width: 1000px;
            margin: 0 auto;
            padding: 20px;
        }
        h1 {
            color: #2c3e50;
            border-bottom: 2px solid #3498db;
            padding-bottom: 10px;
        }
        h2 {
            color: #2980b9;
            margin-top: 30px;
        }
        h3 {
            color: #3498db;
        }
        .algorithm-box {
            background-color: #f8f9fa;
            border-left: 4px solid #3498db;
            padding: 15px;
            margin: 20px 0;
        }
        .formula {
            background-color: #eaf2f8;
            padding: 10px;
            border-radius: 5px;
            font-family: Consolas, monospace;
        }
        table {
            border-collapse: collapse;
            width: 100%;
            margin: 20px 0;
        }
        th, td {
            border: 1px solid #ddd;
            padding: 8px;
            text-align: left;
        }
        th {
            background-color: #f2f2f2;
        }
        .note {
            background-color: #fffacd;
            padding: 10px;
            border-left: 4px solid #f1c40f;
            margin: 15px 0;
        }
        .success {
            color: #27ae60;
        }
        .warning {
            color: #e67e22;
        }
        .danger {
            color: #e74c3c;
        }
    </style>
</head>
<body>
    <h1>基础率建议算法详细说明</h1>
    
    <div class="algorithm-box">
        <p>基础率建议算法是一种自适应控制算法，用于根据连续血糖监测(CGM)数据自动调整糖尿病患者的基础胰岛素输注率，以实现更好的血糖控制。</p>
    </div>

    <h2>1. 算法概述</h2>
    <p>该算法通过分析患者不同时间段的血糖变化趋势，生成基础胰岛素率的调整建议。基础率调整主要基于以下原则：</p>
    <ul>
        <li>当血糖下降过快或患者出现低血糖时，减少基础率</li>
        <li>当血糖维持在高水平或下降不足时，增加基础率</li>
        <li>当血糖变化在理想范围内时，维持当前基础率</li>
    </ul>

    <h2>2. 关键概念和参数</h2>
    
    <h3>2.1 时间段划分</h3>
    <p>算法将一天划分为多个时间段，基于患者的实际餐食时间动态生成：</p>
    <ul>
        <li>夜间时间段：00:00-03:00（凌晨）</li>
        <li>早晨时间段：03:00-早餐时间</li>
        <li>白天时间段：
            <ul>
                <li>早餐到早餐后2小时</li>
                <li>早餐后2小时到午餐</li>
                <li>午餐到午餐后2小时</li>
                <li>午餐后2小时到晚餐</li>
                <li>晚餐到晚餐后2小时</li>
                <li>晚餐后2小时到午夜（00:00）</li>
            </ul>
        </li>
    </ul>

    <h3>2.2 关键参数</h3>
    <table>
        <tr>
            <th>参数名称</th>
            <th>默认值</th>
            <th>说明</th>
        </tr>
        <tr>
            <td>低血糖阈值</td>
            <td>3.9 mmol/L</td>
            <td>低于此值时判定为低血糖，需要减少基础率</td>
        </tr>
        <tr>
            <td>最小血糖差值阈值</td>
            <td>1.7 mmol/L</td>
            <td>期望的最小血糖下降幅度</td>
        </tr>
        <tr>
            <td>最大血糖差值阈值</td>
            <td>3.3 mmol/L</td>
            <td>血糖下降超过此值时需要减少基础率</td>
        </tr>
        <tr>
            <td>最小调整幅度</td>
            <td>10%</td>
            <td>基础率调整的最小百分比</td>
        </tr>
        <tr>
            <td>最大调整幅度</td>
            <td>20%</td>
            <td>基础率调整的最大百分比</td>
        </tr>
    </table>

    <h2>3. 调整规则</h2>

    <h3>3.1 夜间基础率调整规则</h3>
    <p>夜间基础率调整主要通过比较以下时间点的血糖值：</p>
    
    <div class="algorithm-box">
        <h4>1. 睡前和晚餐后2小时比较</h4>
        <p>适用时段：晚餐后2小时到睡前（通常22:00）</p>
        <ul>
            <li>如果睡前血糖比晚餐后2小时<span class="success">上升超过1.7 mmol/L</span>：<strong>增加10%基础率</strong></li>
            <li>如果睡前血糖比晚餐后2小时<span class="danger">下降超过1.7 mmol/L</span>：<strong>减少20%基础率</strong></li>
        </ul>

        <h4>2. 凌晨3:00和睡前比较</h4>
        <p>适用时段：00:00-03:00</p>
        <ul>
            <li>如果凌晨3:00血糖比睡前<span class="success">上升超过1.7 mmol/L</span>：<strong>增加10%基础率</strong></li>
            <li>如果凌晨3:00血糖比睡前<span class="danger">下降超过1.7 mmol/L</span>：<strong>减少20%基础率</strong></li>
        </ul>

        <h4>3. 早餐前和凌晨3:00比较</h4>
        <p>适用时段：03:00-早餐时间</p>
        <ul>
            <li>如果早餐前血糖比凌晨3:00<span class="success">上升超过1.7 mmol/L</span>：<strong>增加10%基础率</strong></li>
            <li>如果早餐前血糖比凌晨3:00<span class="danger">下降超过1.7 mmol/L</span>：<strong>减少20%基础率</strong></li>
        </ul>
    </div>

    <h3>3.2 日间基础率调整规则</h3>
    <p>日间基础率调整主要通过比较餐后2小时血糖和下一餐前血糖：</p>
    
    <div class="algorithm-box">
        <h4>1. 早餐后到午餐前时段</h4>
        <p>比较早餐后2小时血糖和午餐前血糖：</p>
        <ul>
            <li>如果午餐前血糖<span class="danger">低于3.9 mmol/L</span>：<strong>减少20%基础率</strong></li>
            <li>如果血糖<span class="danger">下降超过3.3 mmol/L</span>：<strong>减少20%基础率</strong></li>
            <li>如果血糖<span class="warning">未下降或下降不足1.7 mmol/L</span>：<strong>增加20%基础率</strong></li>
        </ul>

        <h4>2. 午餐后到晚餐前时段</h4>
        <p>比较午餐后2小时血糖和晚餐前血糖：</p>
        <ul>
            <li>如果晚餐前血糖<span class="danger">低于3.9 mmol/L</span>：<strong>减少20%基础率</strong></li>
            <li>如果血糖<span class="danger">下降超过3.3 mmol/L</span>：<strong>减少20%基础率</strong></li>
            <li>如果血糖<span class="warning">未下降或下降不足1.7 mmol/L</span>：<strong>增加20%基础率</strong></li>
        </ul>
    </div>

    <div class="note">
        <p><strong>注意：</strong>餐后2小时内的时段（如早餐到早餐后2小时）一般不调整基础率，因为这些时段主要受餐时胰岛素的影响。</p>
    </div>

    <h2>4. 算法流程</h2>
    
    <h3>4.1 基本流程</h3>
    <ol>
        <li>获取患者基本信息（基础胰岛素率、餐食时间等）</li>
        <li>动态生成时间段</li>
        <li>获取前一天对应时间点的血糖数据</li>
        <li>根据夜间和日间调整规则评估各个时间段的基础率调整需求</li>
        <li>生成调整建议，包括调整百分比和调整原因</li>
    </ol>

    <h3>4.2 调整建议示例</h3>
    <pre class="formula">
时段 03:00-07:00 (早晨):
  调整建议: 增加 10.0%
  调整原因: 早餐前血糖(8.2)与凌晨3:00血糖(6.1)差值为2.1mmol/L，血糖上升超过1.7mmol/L，建议增加基础率10%

时段 09:00-12:00 (早餐后到午餐前):
  调整建议: 减少 20.0%
  调整原因: 午餐前血糖(3.8)与早餐后2小时血糖(9.2)差值为-5.4mmol/L，血糖下降值(5.4)超过最大阈值3.3mmol/L，建议减少基础率20%
    </pre>

    <h2>5. 实现细节</h2>
    
    <h3>5.1 数据获取</h3>
    <p>算法从数据库获取以下信息：</p>
    <ul>
        <li>患者的餐食时间记录</li>
        <li>患者的基础胰岛素或TDD（总日剂量）信息</li>
        <li>患者的连续血糖监测(CGM)数据</li>
    </ul>

    <h3>5.2 关键方法</h3>
    <ul>
        <li><code>_generate_time_periods()</code>: 根据患者实际餐食时间动态生成时间段</li>
        <li><code>_get_cgm_at_time()</code>: 获取特定时间点最接近的血糖值</li>
        <li><code>_evaluate_adjustment()</code>: 评估夜间基础率调整</li>
        <li><code>_evaluate_adjustment_daytime()</code>: 评估日间基础率调整</li>
        <li><code>generate_basal_recommendations()</code>: 生成基础率调整建议</li>
    </ul>

    <h2>6. 使用场景</h2>
    
    <p>该算法适用于以下场景：</p>
    <ul>
        <li>为使用胰岛素泵的1型糖尿病患者提供基础率调整建议</li>
        <li>为多次注射(MDI)治疗的患者提供长效胰岛素剂量调整建议</li>
        <li>医护人员根据患者血糖记录调整胰岛素方案</li>
    </ul>

    <div class="note">
        <p><strong>重要提示：</strong>算法生成的建议仅供参考，实际胰岛素调整应在专业医护人员指导下进行。</p>
    </div>

    <h2>7. 参考资料</h2>
    <ul>
        <li>American Diabetes Association. (2020). <em>Standards of Medical Care in Diabetes—2020</em>.</li>
        <li>Walsh, J., Roberts, R., & Bailey, T. (2014). <em>Guidelines for optimal bolus calculator settings in adults</em>. Journal of Diabetes Science and Technology, 8(5), 1016-1022.</li>
        <li>Heinemann, L., Fleming, G. A., Petrie, J. R., Holl, R. W., Bergenstal, R. M., & Peters, A. L. (2015). <em>Insulin pump risks and benefits: a clinical appraisal of pump safety standards, adverse event reporting, and research needs</em>. Diabetes Care, 38(4), 716-722.</li>
    </ul>

    <footer style="margin-top: 40px; border-top: 1px solid #ddd; padding-top: 20px; color: #7f8c8d;">
        <p>© 2023 基础率调整系统 | 版本：1.0.0 | 最后更新：2023年12月</p>
    </footer>
</body>
</html> 